草庐IT

java - 在java中创建内部类对象的问题

全部标签

ruby - 哪个是 ANTLR 在 ruby​​ 中创建解析器的最佳对应物?

我使用antlr和javacc/freecc有一段时间了。现在我需要使用antlr语法编写一堆解析器,但此类解析器需要用ruby​​lang编写。我用谷歌搜索但没有找到。是否有任何采用antlr语法并创建解析器的ruby​​解析器生成器?如果有很多,您认为哪个是最好的?TIA保罗 最佳答案 您可以使用JRuby轻松逃脱并将您的ANTLR解析器保存在java中。如果PEGs足以胜任你的工作,treetop和更新的citrus是ruby​​ists使用的常用工具。我在研究项目时挖掘的其他解析器是:peggy,Kanocc,Racc.对于

ruby-on-rails - 是否有任何方法可用于查找对象的已更改属性?

我只想获取对象的已更改属性。是否有任何方法可以返回所有更新的属性? 最佳答案 鉴于您的问题中没有太多细节,我假设您指的是ActiveRecord对象。要查看所谓的“脏对象”的更改属性,您可以执行以下操作:User.changed#=>["name","email"]User.changes#=>{"name"=>["Joe","Joseph"]}如果您需要检查特定的属性,还有针对每个属性的方法。User.name_changed?#=>trueUser.name_change#=>["Joe","Joseph"]更多细节在这里:ht

Ruby:是否有关键字可以从自身内部调用方法(类似于 super)?

我想知道:在Ruby中,有没有一种方法可以在不使用其名称的情况下从自身内部调用方法?如果该方法是通过某些元编程技术创建的,那么通过其名称调用它可能会难以阅读。即使对于通常定义的方法,如果您不确定它的好名字,或者如果它的名字很长,通过一些关键字(类似于super)从自身内部调用它可能会很方便。 最佳答案 您可以使用Kernel#__method__以Symbol形式返回当前方法的名称。与super不同,它不是关键字而是常规方法,因此您必须将它连同必需的参数一起传递给send方法才能调用该方法。这是__method__返回的内容:obj

ruby-on-rails - Ruby float 学 - Sum Calc 中的精度问题

大家早上好我在float学方面遇到了一些问题,完全迷失在“.to_f”、“*100”和“.0”中!我希望有人能帮助我解决我的具体问题,并准确解释他们的解决方案为何有效,以便我下次理解这一点。我的程序需要做两件事:对一组小数求和,确定它们的和是否正好为1.0确定1.0与数字总和之间的差值-将变量的值设置为使总和等于1.0的精确差值。例如:[0.28,0.55,0.17]->总和应为1.0,但我一直得到1.xxxxxx。我正在以下列方式实现总和:sum=array.inject(0.0){|sum,x|sum+(x*100)}/100我需要此功能的原因是我正在读取一组来自excel的小数。

ruby-on-rails - Rails 数据/基准变形问题

在我的Rails3.2.6应用程序中,我有一个模型表示有关小部件的数据集合。在我看来,此类的正确名称是WidgetData,复数形式,因为每个小部件有不止一项数据。如果我要求Rails为这个类生成一个表单:=form_for@widget_datado|f|...我得到一个错误ActionView::Template::Error(undefinedmethod'widget_datum_path'...。大概这是因为Rails数据/数据变形规则。我不确定如何最好地解决这个问题:我可以让Rails指示我的模型实际上应该是WidgetDatum。或者我可以以某种方式在这种特殊情况下禁用变

ruby-on-rails - JSON解码参数问题

我有一个使用postgresql的Rails4应用程序。我还有一个backbone.js应用程序,可将JSON推送到Rails4应用程序。这是我的Controller:defcreate@product=Product.new(ActiveSupport::JSON.decodeproduct_params)respond_todo|format|if@product.saveformat.json{renderaction:'show',status::created,location:@product}elseformat.json{renderjson:@product.erro

ruby - 你如何在 CHEF (ruby) 中创建漂亮的 json

您将如何制作具有人类可读json的erb模板?下面的代码有效,但它生成了一个平面json文件默认.rbdefault['foo']['bar']={:herp=>'true',:derp=>42}Recipe.rbtemplate"foo.json"dosource'foo.json.erb'variables:settings=>node['foo']['bar'].to_jsonaction:createendfoo.json.erb类似的SO问题Chefandrubytemplates-howtoloopthoughkeyvaluepairs?HowcanI"pretty"for

ruby-on-rails - 带有 Memcache 的 Rails 返回错误的缓存对象?

我有一个相当大的Rails应用程序,它在单独的服务器上使用memcached作为其缓存存储。问题是我在生产环境中随机出现错误,似乎表明memcached正在返回不正确的对象。例子:在这个例子中,current_site是一个辅助方法,它访问Site模型上的一个方法,该模型使用Rails.cache来缓存模型ActionView::TemplateErrorinListingsController#editundefinedmethod`settings'for#Online#12ofapp/views/layouts/site.html.erb9:10:11:12:13:"/>14:1

ruby - 如何从定义相同名称的模块内部访问ruby中的顶级实体

在一个模块中,我有一个名为Process的类。moduleMProcess=Class.newProcess::wait(0)end这会引发NoMethodError。如何从模块内部访问顶级Process?如果不重命名我的类(class),这完全有可能吗? 最佳答案 ::Process.wait(0) 关于ruby-如何从定义相同名称的模块内部访问ruby中的顶级实体,我们在StackOverflow上找到一个类似的问题: https://stackoverf

ruby-on-rails - 将 Date 对象转换为 TimeWithZone

我需要将Date对象转换为TimeWithZone对象,表示给定时区中那一天的开始。以下方法可行,但似乎太复杂了,因为它需要我将日期转换为字符串:?>date=Date.parse("2010-02-17")=>Wed,17Feb2010>>ActiveSupport::TimeZone['EasternTime(US&Canada)'].parse(date.to_s)=>Wed,17Feb201000:00:00EST-05:00>>ActiveSupport::TimeZone['UTC'].parse(date.to_s)=>Wed,17Feb201000:00:00UTC00